class TextEditor {
    public:
        string str;
        int pos;
        TextEditor() {
            pos = 0;
        }
    
        void addText(string text) {
            str.insert(pos, text);
            pos += text.size();
        }
    
        int deleteText(int k) {
            int ans = min(pos, k);
            pos = max(0, pos - k);
            // str = str.substr(pos, ans);
            int i = pos;
            for (i = pos; i + ans < str.size(); i++) {
                str[i] = str[i + ans];
            }
            str.erase(i,-1);
            return ans;
        }
    
        string cursorLeft(int k) {
            pos = max(0, pos - k);
            int tmp = max(0, pos - 10);
            return str.substr(tmp,pos - tmp);
        }
    
        string cursorRight(int k) {
            pos = min((int)str.size(), pos + k);
            int tmp = max(0, pos - 10);
            return str.substr(tmp,pos - tmp);
        }
    };